package com.heima.context;

/**
 * 线程存储
 */
public class BaseContext {
    // 定义一个ThreadLocal变量，用于存储每个线程独有的长整型数据
    public static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();

    /**
     * 设置当前线程的ThreadLocal变量值
     * @param userId 需要设置的用户ID，每个线程将拥有自己独立的用户ID值
     */
    public static void setThreadLocal(Integer userId) {
        threadLocal.set(userId);
    }

    /**
     * 获取当前线程的ThreadLocal变量值
     * @return 返回当前线程独有的用户ID值
     */
    public static Integer getThreadLocal() {
        return threadLocal.get();
    }

    /**
     * 移除当前线程的ThreadLocal变量值
     * 通常在完成任务后调用，以清理不再需要的线程局部变量，有助于内存回收
     */
    public static void remove() {
        threadLocal.remove();
    }
}
